/*
* autor: joão pedro brites raposo alexandre
* data criação: 2012/01/29
* linguagem: c sharp
* modulo: main.cs
* versão: v1.0
*/

using System;
using Gtk;

namespace tp2_source_code
{
	class MainClass
	{
		/*****************************************************************************
		*MAIN INTERFACE
		*****************************************************************************/
		public static void Main (string[] args)
		{
			//limpa consola
			Console.Clear();
			Console.WriteLine ("DADOS SOBRE O ENSINO SUPERIOR PORTUGUES");
			
			//inicializar aplicaçao
			Application.Init();
			
			//criar janela
			Window myWin = new Window("DADOS SOBRE O ENSINO SUPERIOR PORTUGUES");
			myWin.Resize(450,300);

			//criar labels
			Label myLabel0 = new Label();
			Label myLabel1 = new Label();
			Label myLabel2 = new Label();
			Label myLabel3 = new Label();
			Label myLabel4 = new Label();
			Label myLabel5 = new Label();
			myLabel0.Text = "Carregar Base de Dados";
			myLabel1.Text = "Lista de Docentes por:\n-categoria\n-estabelecimento de ensino\n-ano lectivo";
			myLabel2.Text = "Total de Docentes por:\n-categoria\n-estabelecimento de ensino\n-ano lectivo";
			myLabel3.Text = "Lista de Docentes por:\n-tipo de grau\n-estabelecimento de ensino\n-ano lectivo";
			myLabel4.Text = "Total de Docentes por:\n-tipo de grau\n-estabelecimento de ensino\n-ano lectivo";
			myLabel5.Text = "Informaçao disponivel em\nhttp://www.rebides.oces.mctes.pt/rebidesxx/ (xx-valor de 00 a 10)";
			//criar buttons
			Button button0 = new Button("Carregar Dados...");
			Button button1 = new Button("Processar Dados...");
			Button button2 = new Button("Processar Dados...");
			Button button3 = new Button("Processar Dados...");
			Button button4 = new Button("Processar Dados...");
			//criar conteiners
			VBox verticalbox = new VBox();
			HBox horizontalbox0 = new HBox();
			HBox horizontalbox1 = new HBox();
			HBox horizontalbox2 = new HBox();
			HBox horizontalbox3 = new HBox();
			HBox horizontalbox4 = new HBox();
			HBox horizontalbox5 = new HBox();
			//adicionar a conteiners
			horizontalbox0.PackStart(myLabel0, true, true, 15);	
			horizontalbox0.PackStart(button0, true, false, 10);
			horizontalbox1.PackStart(myLabel1, true, true, 15);
			horizontalbox1.PackStart(button1, true, false, 15);
			horizontalbox2.PackStart(myLabel2, true, true, 15);
			horizontalbox2.PackStart(button2, true, false, 15);
			horizontalbox3.PackStart(myLabel3, true, true, 15);
			horizontalbox3.PackStart(button3, true, false, 15);
			horizontalbox4.PackStart(myLabel4, true, true, 15);
			horizontalbox4.PackStart(button4, true, false, 15);
			horizontalbox5.PackStart(myLabel5);
			//adocionar conteiner a conteiner
			verticalbox.PackStart(horizontalbox0);
			verticalbox.PackStart(horizontalbox1);
			verticalbox.PackStart(horizontalbox2);
			verticalbox.PackStart(horizontalbox3);
			verticalbox.PackStart(horizontalbox4);
			verticalbox.PackStart(horizontalbox5);

			//adocionar eventos
			myWin.DeleteEvent += new DeleteEventHandler(window_DeleteEvent);
			button0.Clicked += new EventHandler(eventHandler_button0);
			button1.Clicked += new EventHandler(eventHandler_button1);
			button2.Clicked += new EventHandler(eventHandler_button2);
			button3.Clicked += new EventHandler(eventHandler_button3);
			button4.Clicked += new EventHandler(eventHandler_button4);
			
			//Add the label to the form 
			myWin.Add(verticalbox);			

			//Show Everything
			myWin.ShowAll();
			
			//Correr aplicaçao
			Application.Run();
		}
		
		
		
		/*****************************************************************************
		*sair da aplicaçao
		*
		*****************************************************************************/
		static void window_DeleteEvent(object sender, EventArgs e)
		{
			Application.Quit();
		}
		
		
		
		/*****************************************************************************
		*sair da aplicaçao
		*
		*****************************************************************************/
		static void eventHandler_button0(object sender, EventArgs e)
		{
			Functions.db_creation();
		}
		
		
		
		/*****************************************************************************
		*evento button 1
		*consulta lista de docentes por categoria, por estabelecimento, por ano
		*****************************************************************************/
		static void eventHandler_button1(object sender, EventArgs e)
		{
			Functions.query_docentes_categoria_estabelecimento_ano();
		}
		
		
		
		/*****************************************************************************
		*evento button 2
		*consulta total de docentes por categoria, por estabelecimento, por ano
		*****************************************************************************/
		static void eventHandler_button2(object sender, EventArgs e)
		{
			Functions.query_numero_docentes_categoria_estabelecimento_ano();
		}
		
		
		
		/*****************************************************************************
		*evento button 3
		*consulta lista de docentes por tipo de grau, por estabelecimento, por ano
		*****************************************************************************/
		static void eventHandler_button3(object sender, EventArgs e)
		{
			Functions.query_docentes_tipo_grau_estabelecimento_ano();
		}
		
		
		
		/*****************************************************************************
		*evento button 4
		*consulta total de docentes por tipo de grau, por estabelecimento, por ano
		*****************************************************************************/
		static void eventHandler_button4(object sender, EventArgs e)
		{
			Functions.query_numero_docentes_tipo_grau_estabelecimento_ano();
		}
	}
	
}
